#pragma once

#include "core/system.h"
#include "video/window.h"

namespace natrium {
	namespace video {
		class Video:
			public core::System
		{
		public:
			Video();
			virtual ~Video();

			virtual bool init();
			virtual void update();
			virtual void shutdown();

		private:
			std::shared_ptr<Window> mWindow; //TODO -- multi-window, multi-screen! although that probably involves an even more data-driven configuration setup
		};

		struct WindowCreated {
			WindowCreated(const std::shared_ptr<Window>& win);

			std::shared_ptr<Window> mWindow;
		};
	}
}